package com.nondo.rdp.auth.service;

import com.nondo.rdp.auth.domain.Message;
import com.nondo.rdp.auth.domain.UserMessage;
import com.nondo.rdp.auth.endpoint.model.Page;

public interface UserMessageService {
	/**
	 * 保存消息
	 *
	 * @param userMessage
	 */
	UserMessage save(UserMessage userMessage);

	/**
	 * 根据主键ID删除消息
	 *
	 * @param id
	 */
	void delete(Long id);

	/**
	 * 根据主键ID查询消息
	 *
	 * @param id
	 * @return
	 */
	UserMessage findOne(Long id);

	/**
	 * 分页查询消息列表
	 *
	 * @param page
	 * @param userMessage
	 * @return
	 */
	Page<UserMessage> findAll(Page<UserMessage> page, UserMessage userMessage);

	/**
	 * 更新已读状态
	 *
	 * @param message
	 */
	void update(Long mid, Long uid);

	/**
	 * 生成用户消息
	 * 
	 * @param message
	 *            {@link Message} 消息体
	 * @param uids
	 *            接收用户，用逗号隔开,在消息体中设置
	 */
	void saveUserMessage(Message message);

	/**
	 * 获取用户未读总数
	 * @param uid
	 * @return
	 */
	int getUnReadNumByUserId(Long uid);

}
